package cn.getech.data.development.entity;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.time.LocalTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 实时任务告警表
 * </p>
 *
 * @author hujz
 * @since 2021-04-08
 */
@Data
@Accessors(chain = true)
@TableName("bdp_real_task_alarm")
public class BdpRealTaskAlarm implements Serializable {

    private static final long serialVersionUID=1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 告警名称
     */
    @TableField("`name`")
    private String name;

    /**
     * 项目id
     */
    @TableField("proc_id")
    private Integer procId;

    /**
     * 任务类型 1：FLINK API  2：FLINK SQL  3：FLINK SQL DAG  4：实时采集
     */
    @TableField("task_type")
    private Integer taskType;
    @TableField(exist = false)
    private String taskTypeTatil;

    /**
     * 触发条件 0：失败
     */
    @TableField("trigger_condition")
    private Integer triggerCondition;
    @TableField(exist = false)
    private String triggerConditionTatil;

    /**
     * 免打扰时间，开始
     */
    @TableField("no_disturbing_start_time")
    private LocalTime noDisturbingStartTime;

    /**
     * 免打扰时间，结束
     */
    @TableField("no_disturbing_ent_time")
    private LocalTime noDisturbingEntTime;

    /**
     * 告警方式，1：邮件，2：T信，3：电话，4：短信  已逗号隔开
     */
    @TableField("alarm_mode")
    private String alarmMode;
    @TableField(exist = false)
    private String alarmModeTatil;

    /**
     * 接收人类型，1：部门，2：项目，3：个人，4：本人
     */
    @TableField("received_type")
    private Integer receivedType;

    /**
     * 告警状态，1：启用，0：禁用
     */
    @TableField("state")
    private Integer state;
    @TableField(exist = false)
    private Boolean stateFlage;

    /**
     * 告警发送次数
     */
    @TableField("send_count")
    private Integer sendCount;

    /**
     * 最后一次发送时间
     */
    @TableField("last_send_time")
    private LocalDateTime lastSendTime;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    @TableField("create_per")
    private Integer createPer;
    @TableField(exist = false)
    private String createPerName;
    /***
     * 接收人的名字 已逗号隔开
     */
    @TableField(exist = false)
    private String receivedNames;
    /***
     * 规则对象的名字 已逗号隔开
     */
    @TableField(exist = false)
    private String objectNames;

    /**
     * 更新时间
     */
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    @TableField("update_per")
    private Integer updatePer;

    @TableField("tenant_id")
    private Integer tenantId;

}
